#pragma once
//WARNINGs
#pragma warning(disable:4244)//double to float
#pragma warning(disable:4305)//double to float
#pragma warning(disable:4267)//: 'initializing' : conversion from 'size_t' to 'uint', possible loss of data
#pragma warning(disable:4522)//multiple assignment operators specified
#pragma warning(disable:4503)//decorated name length exceeded, name was truncated
#pragma warning(disable:4996)//'std::_Equal1': Function call with parameters that may be unsafe 
//zzz Defination
#include "Define.hpp"
//C++ and STL
#include <cmath>
#include <cstring>
#include <cstdlib>
#include <cstdio>
#include <cstdarg>
#include <ctime>
#include <cassert>
#include <vector>
#include <deque>
#include <stack>
#include <queue>
#include <map>
#include <set>
#include <list>
//#include <hash_map>
#include <functional>
#include <numeric>
#include <algorithm>
#include <iostream>
#include <fstream>
#include <limits>
#include <string>
#include <sstream>
#include <exception>
#include <iterator>
using namespace std;

//nvwa
#ifdef ENABLE_NVWA
#include <nvwa/debug_new.h>
#endif


